package org.truenewx.tnxjee.repo.jpa.condition;

import java.util.Collection;

import org.truenewx.tnxjee.model.query.FieldOrder;
import org.truenewx.tnxjee.repo.jdbc.util.ConditionExpression;

/**
 * JPA查询附加策略
 *
 * @author jianglei
 */
public interface JpaQueryAdditionalPolicy {

    /**
     * 获取指定实体类型要附加的条件表达式
     *
     * @param entityClass 实体类型
     * @return 附加的条件表达式，为空则不附加条件
     */
    default ConditionExpression getCondition(Class<?> entityClass) {
        return null;
    }

    /**
     * 获取指定实体类型的默认排序集
     *
     * @param entityClass 实体类型
     * @return 默认排序，为空则不排序
     */
    default Collection<FieldOrder> getDefaultOrders(Class<?> entityClass) {
        return null;
    }

}
